package com.whmall.service.crm.module.company.service;

import com.whmall.component.entity.dto.OperatorReqDTO;
import com.whmall.component.entity.dto.PageReqDTO;
import com.whmall.component.entity.dto.PageRspDTO;
import com.whmall.service.crm.entity.dto.company.CompanyUserInvoiceAddReqDTO;
import com.whmall.service.crm.entity.dto.company.CompanyUserInvoiceQueryReqDTO;
import com.whmall.component.entity.dto.CompanyUserInvoiceDTO;
import com.whmall.service.crm.entity.dto.company.CompanyUserInvoiceUpdateReqDTO;

import java.util.List;

/**
 * 公司用户发票服务
 */
public interface CompanyUserInvoiceService {

    /**
     * 查询发票列表（通用）
     * @param queryReqDTO
     * @return
     */
    List<CompanyUserInvoiceDTO> list(CompanyUserInvoiceQueryReqDTO queryReqDTO);

    PageRspDTO<CompanyUserInvoiceDTO> list(PageReqDTO pageReqDTO, CompanyUserInvoiceQueryReqDTO reqDTO);

    Long add(CompanyUserInvoiceAddReqDTO reqDTO);

    void update(CompanyUserInvoiceUpdateReqDTO reqDTO);

    void remove(Long id, OperatorReqDTO operator);

    void setDefault(Long id, Long employeeId);

    CompanyUserInvoiceDTO getByCompanyId(Long companyId);

}
